Manufacturers of security systems provide security devices for public and private institutions, commercial businesses, schools, hospitals and government institutions to list a few examples. The security devices are connected to security networks installed in the customer premises. One of the most important security devices in the security network is the video camera, or security camera. Video data streams from security cameras have increasingly become the focus of security-related activities such as loss-prevention and evidence collection, in addition to surveillance.
Client devices run applications for managing and viewing video data streams from the security networks. The client devices have typically been desktop-based systems or workstations that include high-performance CPUs and provide large memory footprints. The applications on the client devices leverage the large amount of available memory and processing power in order to display and manage multiple full-rate video data streams from one or more security cameras concurrently.
The recent proliferation of inexpensive user devices for displaying video streams over public and cellular data networks has had a profound impact on the way security professionals and first responders consume and share video data from private security networks. In examples, first responders at an accident scene can capture and share video streams in real time with one another on mobile computing devices such as smart phones and police dispatchers can stream surveillance video data of a suspect to mobile computing devices of law enforcement personnel in the field.
Each of the video streams is typically displayed within a separate pane in a grid that displays on the user device. However, the limited processing power, memory, and functionality of user devices impose significant restrictions on the display of video data streams on user devices. In practice, most tablet and smart phone user devices can typically decode and display only one video data stream at a time. This presents a problem for security personnel, who typically require the ability to display multiple video data streams concurrently on the client, such as in a 2×2 grid layout. In addition, the main application that runs on these user devices is a web browser. Web browsers are more limited in their capabilities than the custom applications installed on security workstations for viewing video streams from security cameras.
Current approaches to solving the problem of displaying multiple video data streams from security cameras on client mobile computing devices have focused on server-side optimization. Typically, streaming servers within the security network perform the majority of the mixing and processing of the video data streams from the security cameras.
In a typical example of current approaches, the server decodes the video data streams (“video streams”) from all security cameras, mixes them into a display grid, and then compresses the video streams into a single video data stream. The server then sends the grid including the compressed video data stream to the client mobile computing device. The client device uncompresses and displays the video streams in the display grid. This process repeats for each compressed stream transmission from the server.